home *** CD-ROM | disk | FTP | other *** search
- SET TTHRU OFF ; Allow type ahead
- ;
- ; ----- Dialing directory list
- ; Commenced: 8/92 R.McG
- ; ----------------------------------------------------------------
- ; Note: This script searches the current directory for *.DIR
- ; files, and displays a menu of the results.
- ; ----------------------------------------------------------------
- ;
- ; First, draw a box
- ;
- LEGEND " Select a dialing directory"
- ON ESCAPE GOSUB EXIT
- ;
- ; Start by opening a window
- ;
- GOSUB Window ; Open a window
- ;
- ; Now, look for a keypress
- ;
- FFIRST "*.DIR" ; Search for directories
- IF FAILED GOTO EndLoop ; Exit if none found
- N10 = 0 ; Index of files found
- SET FLAG(0) OFF ; Flag -> pass1/pass2
- ;
- ; Build the menu
- ;
- Loop:
- IF N10 GE 20 GOTO Keyget
- FNEXT S10[N10] ; Read next directory
- IF FAILED GOTO EndLoop
-
- N0 = N10\10 ; Row # 0-9
- IF N10 LT 10
- ATSAY N0+2,15 (defa) S10[N10]
- ELSE
- ATSAY N0+2,45 (defa) S10[N10]
- ENDIF
- INC N10
- GOTO Loop ; And loop
- ;
- ; End of loop. After pass on current subdir, if no
- ; *.DIR's are found, try on the COM-AND= subdir...
- ;
- EndLoop:
- IF N10 NE 0 GOTO KeyGet ; If we have any fnames, stop here
- IF FLAG(0) GOTO Exit ; There are no directories
- SET FLAG(0) ON ; Mark search in COM-AND= subdir
-
- ENVIRON S0 "COM-AND=" ; Get COM-AND= environment variable
- IF NOT FOUND GOTO Exit ; No action if no environment variable
-
- LENGTH S0 N0 ; Get its length
- DEC N0 ; Point to last char in string
- IF NOT STRCMP S0(N0:N0) "\" S0 = S0&"\"
- FFIRST S0&"*.DIR" ; Concatenate path and name
- IF FAILED GOTO Exit ; Exit if none found
- GOTO Loop
- ;
- ; Subroutine to intercept ESCAPE
- ;
- Exit:
- WCLOSE ALL ; Restore saved screen area
- STACK "^@ " ; "^@ " -> Alt-d (open DD after script)
- EXIT ; No window foolishness
- ;
- ; Invalid input
- ;
- Invalid:
- SOUND 100,100 ; Bronx cheer
- ;
- ; Fetch a response
- ;
- Keyget:
- KEYGET S0 ; Set for current execution
- IF NOT FIND "1234567890abcdefghij" S0 N0 GOTO Invalid
- IF N0 GE N10 GOTO Invalid
- ;
- ; Load the new directory
- ;
- LOAD DIAL S10[N0] ; Load new directoryiable found
- GOTO Exit
- ;
- ; Open a window and display a menu
- ;
- Window:
- WOPEN 0 10 16 70 (defa)
- ATSAY 0 12 (default) " COM-AND Dialing directories "
- ATSAY 16 30 (default) " Press ESC to cancel "
-
- ATSAY 2 12 (default) "1) "
- ATSAY 3 12 (default) "2) "
- ATSAY 4 12 (default) "3) "
- ATSAY 5 12 (default) "4) "
- ATSAY 6 12 (default) "5) "
- ATSAY 7 12 (default) "6) "
- ATSAY 8 12 (default) "7) "
- ATSAY 9 12 (default) "8) "
- ATSAY 10 12 (default) "9) "
- ATSAY 11 12 (default) "0) "
-
- ATSAY 2 42 (default) "A) "
- ATSAY 3 42 (default) "B) "
- ATSAY 4 42 (default) "C) "
- ATSAY 5 42 (default) "D) "
- ATSAY 6 42 (default) "E) "
- ATSAY 7 42 (default) "F) "
- ATSAY 8 42 (default) "G) "
- ATSAY 9 42 (default) "H) "
- ATSAY 10 42 (default) "I) "
- ATSAY 11 42 (default) "J) "
-
- S0 = "_DIRF" ; Take current directory
- UPPER S0 ; Upper case
- LENGTH S0 N0 ; Take its length
- IF N0 GT 46 S0 = S0(N0-46:N0-1)
- ATSAY 13 12 (default) "Currently: "*S0
- ATSAY 14 12 (default) "Select the directory: "
- RETURN